Conversation
…-darwin I'm not sure if this is suitable for upstream, so I'd rather Apple address it in the next release.
|
Is this something we could avoid on the Rust side instead? e.g. don't add that attribute in the first place? It would be a hack either way, but I think lower maintenance overhead if we change "our" code. |
No :\ |
|
As per rust-lang/rust#140686 (comment) , Apple is not planning a fix. |
|
I know that Apple isn't planning to fix it, but maybe we should fix it anyhow? |
I can't be sure if this workaround will reliably support for the next five years (or longer), as I haven't debugged ld64 to find the root cause. I'm not sure if we should be supporting an end-of-life tool. Free to mention this issue at the compiler meetings. I can maintain this patch, but I don't know about the long-term direction. Perhaps someone could take over the maintenance of ld64, but who would review their changes? |
|
Fair enough |
@madsmtm FYI, this has been sent to upstream via llvm#142304. (You've probably already seen it.) |
|
Yeah, I did, thanks a lot! |
This reverts c458123 which reverted the upgrade to rust-1.86.0. The upgrade to rust-1.86.0 in d1dc4c2 was initially reverted since it caused the `//rs/pocket_ic_server:...` and `//packages/pocket-ic:...` tests to fail on x86_64-apple-darwin. We have now debugged this failure and it turns out this is due to a bug in the apple linker that causes bad code to be generated for the `hyper` HTTP client crate used in both the pocket-ic library and server. (Full context [here](rust-lang/rust#140686 (comment))). LLVM has a [workaround](rust-lang/llvm-project#181) that they merged and rustc will integrate it soon. Until then, it appears that the bug is only triggered when building with the default `opt-level=2`. Until we’ve upgraded to the newest rustc (for which we’ll need to wait for a new rules_rust version) we will build the `hyper` crate with `opt-level=0`(I tried `opt-level=1` but that results in the same failure). This rust upgrade should also fix the non-reproducibility of the `archive_canister_u256` and related canisters. --------- Co-authored-by: IDX GitHub Automation <> Co-authored-by: Martin Raszyk <martin.raszyk@dfinity.org>
Temporary fixes rust-lang/rust#140686.
I'm not sure if this is suitable for upstream, so I'd rather Apple address it in the next release.